<?php

namespace fastphp\util;

/**
 * 目录操作工具类
 */
class Directory
{
    /**
     * 递归创建目录
     */
    public static function create($path, $mode = 0777, $recursive = true, $existOk = false) {
        if (!is_dir($path)){
            if (!mkdir($path, $mode, $recursive) && !$existOk) {
                return false;
            }
        }
        return true;
    }
    
    /**
     * 列出目录内容
     */
    public static function listContents($path) {
        if (!is_dir($path)) return [];
        return scandir($path);
    }
    
    /**
     * 删除目录（递归）
     */
    public static function delete($path) {
        if (!is_dir($path)) return false;
        
        $files = new \RecursiveIteratorIterator(
            new \RecursiveDirectoryIterator($path, \RecursiveDirectoryIterator::SKIP_DOTS),
            \RecursiveIteratorIterator::CHILD_FIRST
        );
        
        foreach ($files as $fileinfo) {
            if ($fileinfo->isDir()) {
                rmdir($fileinfo->getRealPath());
            } else {
                unlink($fileinfo->getRealPath());
            }
        }
        
        return rmdir($path);
    }
}
